#pragma once

#include <cstdint>
#include <string>

#include "renderer.h"

class Texture {
public:
    Texture(const std::string &path);
    ~Texture();

    void Bind(uint32_t slot = 0) const;
    void Unbind();

    inline int GetWidth() const { return width; }
    inline int GetHeight() const { return height; }

private:
    uint32_t rendererID = 0;
    std::string filePath;
    uint8_t *localBuffer = nullptr;
    int32_t width = 0;
    int32_t height = 0;
    int32_t bpp = 0;
};
